﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Controleur
{
    class ModeMain : ModeManipulation
    {

        /***********************/
        /**** Constructeurs ****/
        /***********************/

        /** 
         * ModeEdition(System.Drawing.Color _couleur, int _epaisseur)
         * 
         * @brief Constructeur
         * @param System.Drawing.Color _couleur : la couleur des traits par défaut
         * @param int _epaisseur : l'épaisseur des traits par défaut
         * @return void
         */
        public ModeMain(System.Drawing.Color _couleur, int _epaisseur) : base(_couleur, _epaisseur) { }

        /** 
         * ModeEdition()
         * 
         * @brief Constructeur par défaut
         * @return void
         */
        public ModeMain()
            : base()
        {
        }


        /***************************************/
        /** Actions spécifiques à chaque mode **/
        /***************************************/


        /**
         * ActionZoneDessin(Microsoft.Ink.Stroke _stroke)
         * 
         * @brief écriture sur la zone de dessin
         * @param Stroke _stroke : objet contenant de nombreuses informations (analogue à ensemble de points)
         * @return void
        */
        public override void ActionZoneDessin(Microsoft.Ink.Stroke _stroke)
        {
            controleur.getLogiciel().getVue().getFenetre().modeMain(_stroke.GetPoints());
        }


        /**
         * ActionBouton()
         * 
         * @brief clic sur le bouton sur le côté du stylet
         * @return void
        */
        public override void ActionBouton()
        {
            controleur.changerMode(new ModeEdition(couleur, epaisseur));
        }

        /**
        * ActionEffacer(Microsoft.Ink.Strokes _strokes)
        * 
        * @brief tracer un trait sur la zone de dessin avec la "gomme"
        * @param Strokes _strokes : objet contenant de nombreuses informations (analogue à ensemble de stroke)
        * @return void
        */
        public override void ActionEffacer(Microsoft.Ink.Strokes _strokes) { }

        /**
        * ActionDoubleClic(Microsoft.Ink.Strokes _strokes)
        * 
        * @brief Action de double clic
        * @param Strokes _strokes : objet contenant de nombreuses informations (analogue à ensemble de stroke)
        * @return void
        */
        public override void ActionDoubleClic(Microsoft.Ink.Strokes _strokes) { }
    }
}

